// Vue
import Vue from 'vue'
import App from './App'
// store
import store from '@/store/index'
// 模拟数据
import '@/mock'

import { current } from "./api/current"

// 多国语
import i18n from './i18n'
//websocket
import globalWebSocket from './api/global'
Vue.prototype.$globalWebSocket = globalWebSocket
// 隐藏 右侧浏览器 滚动条
import VueSmoothScroll from "vue2-smooth-scroll";
Vue.use(VueSmoothScroll)

// 核心插件
import d2Admin from '@/plugin/d2admin'
import './assets/font_3742336_4zp2w8pj1ss/iconfont.css'//引入阿里巴巴图标
import './assets/font_icon/iconfont.css'//引入阿里巴巴图标


// 菜单和路由设置
import router from './router'
import { menuHeader, menuAside } from '@/config/menu'
import { frameInRoutes } from '@/config/routes'
import awednd from 'awe-dnd'

const VueScrollTo = require('vue-scrollto')

// 商超页面楼层监听
Vue.use(VueScrollTo)

// You can also pass in the default options
Vue.use(VueScrollTo, {
  container: 'body',  // 滚动元素
  duration: 500, // 动画时长
  easing: 'ease', // 动画曲线
  offset: 0, // 滚动终点距离父元素顶部距离
  force: true, // 强制立即执行，即便元素是可见的
  cancelable: true,
  onStart: false,
  onDone: false,
  onCancel: false,
  x: false, // x 轴禁止滚动
  y: true
})
// END商超页面楼层监听


Vue.use(awednd)
// console.log('frameInRoutes', frameInRoutes)
Vue.prototype.my_request = current;//在原型上添加网络请求方法，this.my_request
// 核心插件
Vue.use(d2Admin)
new Vue({
  router,
  store,
  i18n,
  render: h => h(App),
  created() {
    // 处理路由 得到每一级的路由设置
    this.$store.commit('d2admin/page/init', frameInRoutes)
    // 设置顶栏菜单
    this.$store.commit('d2admin/menu/headerSet', menuHeader)
    // 设置侧边栏菜单
    this.$store.commit('d2admin/menu/asideSet', menuAside)
    // 初始化菜单搜索功能
    this.$store.commit('d2admin/search/init', menuHeader)
  },
  mounted() {
    // 展示系统信息
    this.$store.commit('d2admin/releases/versionShow')
    // 用户登录后从数据库加载一系列的设置
    this.$store.dispatch('d2admin/account/load')
    // 获取并记录用户 UA
    this.$store.commit('d2admin/ua/get')
    // 初始化全屏监听
    this.$store.dispatch('d2admin/fullscreen/listen')
  }
}).$mount('#app')
